Модуль box
-
int
box_return_tuple
(box_function_ctx_t *ctx, box_tuple_t *tuple) Возврат кортежа с помощью хранимой процедуры на языке C.
Для возвращаемого кортежа Tarantool проводит автоматический подсчет ссылок. Пример программы, которая использует
box_return_tuple()
: write.c.Параметры: - ctx (box_funtion_ctx_t*) – непрозрачная структура, передаваемая Tarantool в хранимую процедуру на языке C
- tuple (box_tuple_t*) – возвращаемый кортеж
Результат: -1 в случае ошибки (возможная нехватка памяти; проверьте box_error_last())
Результат: 0 в остальных случаях
-
uint32_t
box_space_id_by_name
(const char *name, uint32_t len) Поиск идентификатора спейса по имени.
Данная функция делает запрос выборки SELECT из системного спейса
_vspace
.Параметры: - char* name (const) – имя спейса
- len (uint32_t) – длина имени
name
Результат: BOX_ID_NIL
в случае ошибки или отсутствия (проверьте box_error_last())Результат: space_id в остальных случаях
См. также
box_index_id_by_name
-
uint32_t
box_index_id_by_name
(uint32_t space_id, const char *name, uint32_t len) Поиск идентификатора индекса по имени.
Данная функция делает запрос выборки SELECT из системного спейса
_vindex
.Параметры: - space_id (uint32_t) – идентификатор спейса
- char* name (const) – имя индекса
- len (uint32_t) – длина имени
name
Результат: BOX_ID_NIL
в случае ошибки или отсутствия (проверьте box_error_last())Результат: space_id в остальных случаях
См. также
box_space_id_by_name
-
int
box_insert
(uint32_t space_id, const char *tuple, const char *tuple_end, box_tuple_t **result) Выполнение запроса вставки или замены (INSERT/REPLACE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- char* tuple (const) – закодированный кортеж в формате MsgPack-массива ([ field1, field2, …])
- char* tuple_end (const) – конец кортежа
tuple
- result (box_tuple_t**) – аргумент вывода. Возвращаемый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.insert()
-
int
box_replace
(uint32_t space_id, const char *tuple, const char *tuple_end, box_tuple_t **result) Выполнение запроса замены (REPLACE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- char* tuple (const) – закодированный кортеж в формате MsgPack-массива ([ field1, field2, …])
- char* tuple_end (const) – конец кортежа
tuple
- result (box_tuple_t**) – аргумент вывода. Возвращаемый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.replace()
-
int
box_delete
(uint32_t space_id, uint32_t index_id, const char *key, const char *key_end, box_tuple_t **result) Выполнение запроса удаления (DELETE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- index_id (uint32_t) – идентификатор индекса
- char* key (const) – закодированный ключ в формате MsgPack-массива ([ field1, field2, …])
- char* key_end (const) – конец ключа
key
- result (box_tuple_t**) – аргумент вывода. Старый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.delete()
-
int
box_update
(uint32_t space_id, uint32_t index_id, const char *key, const char *key_end, const char *ops, const char *ops_end, int index_base, box_tuple_t **result) Выполнение запроса обновления (UPDATE).
Параметры: - space_id (uint32_t) – идентификатор спейса
- index_id (uint32_t) – идентификатор индекса
- char* key (const) – закодированный ключ в формате MsgPack-массива ([ field1, field2, …])
- char* key_end (const) – конец ключа
key
- char* ops (const) – закодированные операции в формате MsgPack-массива, например
[[ '=', field_id, value ], ['!', 2, 'xxx']]
- char* ops_end (const) – конец раздела операций
ops
- index_base (int) – 0, если идентификаторы полей field_id с основанием 0, как в C, 1, если идентификаторы полей с основанием 1, как в Lua
- result (box_tuple_t**) – аргумент вывода. Старый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.update()
-
int
box_upsert
(uint32_t space_id, uint32_t index_id, const char *tuple, const char *tuple_end, const char *ops, const char *ops_end, int index_base, box_tuple_t **result) Выполнение запроса обновления и вставки (UPSERT).
Параметры: - space_id (uint32_t) – идентификатор спейса
- index_id (uint32_t) – идентификатор индекса
- char* tuple (const) – закодированный кортеж в формате MsgPack-массива ([ field1, field2, …])
- char* tuple_end (const) – конец кортежа
tuple
- char* ops (const) – закодированные операции в формате MsgPack-массива, например
[[ '=', field_id, value ], ['!', 2, 'xxx']]
- char* ops_end (const) – конец операций
ops
- index_base (int) – 0, если идентификаторы полей field_id с основанием 0, как в C, 1, если идентификаторы полей с основанием 1, как в Lua
- result (box_tuple_t**) – аргумент вывода. Старый кортеж. Можно задать значение NULL для сброса результата
Результат: -1 в случае ошибки (проверьте box_error_last())
Результат: 0 в остальных случаях
См. также space_object.upsert()